import io
import base64
import numpy as np
from PIL import Image

def image2byte(image):
    '''
    图片转byte
    image: 必须是PIL格式
    image_bytes: 二进制
    '''
    # 创建一个字节流管道
    img_bytes = io.BytesIO()
    #把PNG格式转换成的四通道转成RGB的三通道，然后再保存成jpg格式
    image = image.convert("RGB")
    # 将图片数据存入字节流管道， format可以按照具体文件的格式填写
    image.save(img_bytes, format="JPEG")
    # 从字节流管道中获取二进制
    image_bytes = img_bytes.getvalue()
    return image_bytes

def byte2image(byte_data):
    '''
    byte转为图片
    byte_data: 二进制
    '''
    image = Image.open(io.BytesIO(byte_data))
    return image



if __name__ == '__main__':
    image_path = "1.png"
    # image = Image.open(image_path)
    # byte_data = image2byte(image) #把图片转换成二进制
    # print(byte_data)
    # # image2 = byte2image(byte_data)。#把二进制转成图片
    img = Image.open('1.png')
    img_arr = np.array(img)
    flat_arr = img_arr.flatten()
    bin_arr = [format(pixel, '08b') for pixel in flat_arr]
    print(bin_arr)
    print(len(bin_arr))

    # xor_arr = [int_arr1[i] ^ int_arr2[i] for i in range(len(int_arr1))]




